procedure TForm1.Button1Click(Sender: TObject);
begin
if (not(Sender is TButton)) or (TButton(Sender).ComponentCount > 0) then
exit;
with TButton.Create(TButton(Sender)) do
begin
Parent := Self;
Left := TButton(Sender).Left + TButton(Sender).Width;
Top := TButton(Sender).Top;
OnClick := Button1Click;
end;